package findRestaurant;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Solution {
    public String[] findRestaurant(String[] list1, String[] list2) {
        HashMap<String,Integer> map = new HashMap<>();
        for (int i = 0; i < list2.length; i++) {
            map.put(list2[i],i);
        }
        Map<Integer,List<String>>res = new HashMap<>();
        int minIndexSum = Integer.MAX_VALUE;
        for (int i = 0; i < list1.length; i++) {
            if(map.containsKey(list1[i])){
                int indexSum = map.get(list1[i])+i;
                minIndexSum = Math.min(minIndexSum,indexSum); // 索引和是最小值
                if(res.containsKey(indexSum)){
                    List<String> list = res.get(indexSum);
                    list.add(list1[i]);
                    res.put(indexSum,list);
                }else {
                    List<String> list = new ArrayList<>();
                    list.add(list1[i]);
                    res.put(indexSum,list);
                }
            }
        }
        return res.get(minIndexSum).toArray(new String[res.get(minIndexSum).size()]);
    }
}
